#include <iostream>
#include <signal.h>
#include<unistd.h>
void PrintPending(__sigset_t &pending)
{
    printf("我是一个进程（%d）,pending:",getpid());
    for (int signo = 1; signo <= 31; signo++)
    {
        if (sigismember(&pending, signo))
        {
            printf("1");
        }
        else
        {
            printf("0");
        }
    }
    printf("\n");
}
int main()
{
    // 屏蔽2号信号
    __sigset_t block, oblock;
    sigemptyset(&block);
    sigemptyset(&oblock);

    sigaddset(&block, SIGINT); // 当前仅仅是在用户态给block这个结构体中的信号屏蔽字赋值
    int n = sigprocmask(SIG_SETMASK, &block, &oblock);
    (void)n;

    while (true)
    {
        sigset_t pending;
        int m = sigpending(&pending);
        PrintPending(pending);
        sleep(1);
    }

    return 0;
}